Computer systems employ peripheral devices that can add significant functionality for the user. Typically, a peripheral device (“device”) is an external electronic device that can be plugged into the computer system using an input/output port, e.g., a Universal Serial Bus (USB) port in one instance. The peripheral device typically has associated therewith a device driver which is a piece of software that the operating system (OS) of the computer system installs and uses to control the functionality of the peripheral device.
For computer systems that utilize the Microsoft operating system, devices and their associated device drivers are “bound” together using a procedure that Microsoft implements called “driver signing.” The binding process is used to insure that device drivers have been tested such that they do not interfere with OS functionality. In this binding procedure, a device driver's identification and a vendor's identification are bound to a device's identification. Specifically, driver developers submit to Microsoft an install file (.INF file) which includes various identifications, such as an identification of the device name, its version and an identification of the vendor and the device driver name. This information is then “bound” with the executable driver software (.SYS file) by Microsoft and a signed version of the install file is returned to the driver developer. In this fashion, a particular driver is associated with a particular device type. Once installed on a machine, the device driver will automatically become active (e.g., “loaded”) when the associated device is plugged into the computer system. For this reason, these device drivers are often called “plug and play” drivers.